package com.gxar.quick.ar.server.base.common.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.Objects;

/**
 * 数字处理工具
 *
 * @author zxh
 * @version 1.0
 * @created 2024/01/23.
 */
public class NumberUtils {

    private NumberUtils() {
        // Nothing
    }

    /**
     * 不使用科学计数法, 最多保留15位小数
     *
     * @param inputNum 输入数字
     * @return
     */
    public static String formatDouble(Double inputNum) {
        if (Objects.isNull(inputNum)) {
            return "";
        }

        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(20);                // 设置保留多少位小数
        nf.setGroupingUsed(false);                      // 取消科学计数法
//        nf.setRoundingMode(RoundingMode.HALF_UP);     // 四舍五入
        return nf.format(inputNum);
    }

    public static String formatBigDecimal(BigDecimal inputNum) {
        if (Objects.isNull(inputNum)) {
            return "";
        }

        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(20);                // 设置保留多少位小数
        nf.setGroupingUsed(false);                      // 取消科学计数法
//        nf.setRoundingMode(RoundingMode.HALF_UP);     // 四舍五入
        return nf.format(inputNum);
    }

}
